// subPage/login/login.js
import {
  login
} from '../../api/login'

import {
  createStoreBindings
} from "mobx-miniprogram-bindings";
import {
  userStore
} from '../../store/index.js'

// import {
//   testBehavior
// } from "./behavior";

Page({

  // behaviors: [testBehavior],

  /**
   * 页面的初始数据
   */
  data: {
    loginname: '17704051019',
    password: '123456',
    redirect: ''
  },

  //双向绑定数据
  change(e) {
    this.setData({
      [e.target.dataset.name]: e.detail
    })
  },

  // 登录
  async loginAction() {
    const regName = /^(13[0-9]|15[012356789]|166|17[3678]|18[0-9]|14[57])[0-9]{8}$/
    //手机号的非空校验
    if (!this.data.loginname) {
      return wx.showToast({
        title: '手机号不能为空',
        icon: 'error',
        duration: 1000
      })
    }
    //手机号的合法校验
    if (!regName.test(this.data.loginname)) {
      return wx.showToast({
        title: '手机号不合法',
        icon: 'error',
        duration: 1000
      })
    }

    const regPassword = /^\d{6,10}$/
    //密码的非空校验
    if (!this.data.password) {
      return wx.showToast({
        title: '密码不能为空',
        icon: 'error',
        duration: 1000
      })
    }
    //密码的合法校验
    if (!regPassword.test(this.data.password)) {
      return wx.showToast({
        title: '密码不合法',
        icon: 'error',
        duration: 1000
      })
    }

    // 走到这里说明校验通过,可以调接口
    const res = await login({
      loginname: this.data.loginname,
      password: this.data.password
    })


    if (res.code === 200) {
      this.setToken(res.data.token)
      console.log(this);

      return wx.showToast({
        title: '登陆成功',
        duration: 1000,
        success: () => {
          setTimeout(() => {
            wx.setTabBarItem({
              index: 3,
              text: '我的'
            })


            if (this.data.redirect) {
              wx.reLaunch({
                url: this.data.redirect,
              })
            } else {
              wx.reLaunch({
                url: '../../pages/home/home',
              })
            }
          }, 1000)
        }
      })

    }
  },

  /**
   * 生命周期函数--监听页面加载
   */
  onLoad(options) {
    // 通过我的页面跳转到登陆页面时传递的参数来做重定向
    this.data.redirect = options.redirect

    this.storeBindings = createStoreBindings(this, {
      store: userStore,
      fields: ['token'],
      actions: ['setToken']
    })
  },

  /**
   * 生命周期函数--监听页面初次渲染完成
   */
  onReady() {

  },

  /**
   * 生命周期函数--监听页面显示
   */
  onShow() {

  },

  /**
   * 生命周期函数--监听页面隐藏
   */
  onHide() {

  },

  /**
   * 生命周期函数--监听页面卸载
   */
  onUnload() {
    this.storeBindings.destroyStoreBindings()
  },

  /**
   * 页面相关事件处理函数--监听用户下拉动作
   */
  onPullDownRefresh() {

  },

  /**
   * 页面上拉触底事件的处理函数
   */
  onReachBottom() {

  },

  /**
   * 用户点击右上角分享
   */
  onShareAppMessage() {

  }
})